package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func main() {
	r := gin.Default()

	// 设置 a.lalala.com 域名才能访问cookie的函数
	r.GET("/setA", func(context *gin.Context) {

		// SetCookie函数有7个参数：
		// name： 		是key
		// value：		是value
		// maxAge：		单位是秒，过期时间，不想设置过期时间可以是nil
		// pat：		cookie的作用域的请求路径，/ 表示所有请求都可以使用，  /index 表示只有这个 /index 请求路径才能访问cookie
		// domain：		cookie的路径的作用域，本地调试是localhost，上线的话配置成域名
		// secure：		如果是true表示 http 中是无效的，在 https 中才是有效
		// httpOnly：	true的话只有后端才能使用，防止XSS攻击，false的话前端才可以通过js去使用

		// 																				只有 a.lalala.com 域名的请求路径才能访问cookie
		context.SetCookie("username", "张三", 3600, "/", "a.lalala.com", false, false)

		context.JSON(http.StatusOK, gin.H{
			"method": "SUCCESS",
		})
	})

	// 设置 b.lalala.com 域名才能访问cookie的函数
	r.GET("/setB", func(context *gin.Context) {

		// 																			只有 b.lalala.com 域名的请求路径才能访问cookie
		context.SetCookie("username", "张三", -1, "/", "b.lalala.com", false, false)

		context.JSON(http.StatusOK, gin.H{
			"method": "SUCCESS",
		})
	})

	// 设置 a.lalala.com 域名 和 b.lalala.com 域名 都能访问cookie的函数
	r.GET("/set", func(context *gin.Context) {
		//																				直接从点 .开始写，就可以通过所有 XXX.lalala.com 的域名都可以访问
		context.SetCookie("username", "张三", -1, "/", ".lalala.com", false, false)

		context.JSON(http.StatusOK, gin.H{
			"method": "SUCCESS",
		})
	})

	// 获取 cookie
	r.GET("/get", func(context *gin.Context) {

		cookie, _ := context.Cookie("username")

		context.JSON(http.StatusOK, gin.H{
			"cookie": cookie,
		})
	})

	r.Run()
}
